void drawWindow(int algo) {     
  //搜索中显示信息
    if (!findpath) ++steps;
    // if(route.size() == 0)delay(10);//多向搜索保证速度相同
    // else delay(10/route.size());

    //已被搜索填充红色，搜索中填充绿色，未搜索黑色
    background(20);
    for (Cell c : grid) {
        if (c.visited ) {//被访问过，放cover颜色，内部线路是在backTrack里面上色
            c.show(outter_cover_c);
        } else {
            c.show(back_ground_c);//未被访问过，背景色。（不画不行）
        }
    }
    
    if (!findpath) {//内部路径绘制
        for (Cell t : route) {
            t.backTrack();
        }
    }
    
    if(algo == 0){
        if (!findpath)//多个点，bfs
            for (Cell t : route) {
                t.show(search_head);
            }
    }else if(algo == 1 && !findpath){  //ASTARbacktrack route里面没东西,路径没画
      
           for(PII i : heap){
               grid[i.getSecond()].backTrack();
           }
         Cell t = grid[heap.peek().getSecond()];
         t.show(search_head);
        
    }else if(algo == 2){
        if(route.size() != 0){
            Cell t = route.get(0);t.show(search_head);
        }
    }
    
    start.show(start_c);
    end.show(end_c);
    if (findpath) current.backTrack();//找到路径后一律用这个backTrack,别的再backTrack就会有冲突
  //  if(findpath)
    // current.backTrack();//顺序很重要
}
